Digital graphic design, video editing, and media-editing applications provide designers and artists with the necessary tools to create much of the media seen today through the various media outlets. These tools allow designers the ability to generate, compose, composite, and animate the images and videos in a virtual digital space. In the progression of these tools, the virtual digital space has gone from flat two-dimensional (2D) spaces to three-dimensional (3D) spaces.
A computer simulating the space is also able to calculate an image of the space as seen from a particular point in the three-dimensional space, looking in a particular direction, and with a particular field of view (such a calculation is sometimes called “rendering”). Some applications define a virtual camera at that particular point (the location of the virtual camera), pointing in that particular direction (the orientation of the virtual camera), and spanning that particular field of view. A virtual camera can be moved around the three-dimensional space and re-oriented. When the image of the scene is rendered, objects within the field of view are shown in the rendered image, while objects outside the field of view are not seen in the rendered image.
A 3D space provides designers with capabilities not previously available within a 2D space. Designers now have the ability to fly virtual cameras throughout the 3D space, adding depth to render more complex environments. Also, the added third dimension provides designers with a much larger workspace with which to work. Objects such as images, videos, text, shapes, cameras, lights, spatial audio, etc. can be located anywhere in any dimension of the 3D space
Objects in the 3D space of such applications have locations (sometimes called “positions”) and orientations (also called “direction”) which may change over time. The simulated camera of such applications is generally movable, both in position and orientation. The position, orientation, and field of view of such a camera determines which objects are in the field of view of the camera in the simulated scene and what angles the objects are viewed from. The location determines where the camera is, the orientation represents which way the camera is pointing. Given a location and an orientation (direction the camera is pointing), the field of view determines how much of the scene that surrounds the direction the camera is pointing will be captured by the camera. The wider the field of view, the more of the scene it will capture and the smaller any individual object will appear in the rendered output.
In the prior art, changes in the location, orientation, and field of view of the camera over set durations and the positions and movements of the objects in the scene over such set durations were independent of each other. A camera could be ordered to relocate, but not to relocate over a set duration relative to a particular object. This meant that a user of the prior art had to determine what movements, reorientations and changes of field of view of the camera were necessary to provide whatever views of the objects he wanted, and then program the camera movement accordingly. This left a further layer of complexity to setting up a scene beyond moving the objects, especially since each change in the motion of an object meant that the motion and changes of other camera parameters had to be determined again by the user. Therefore, there is a need for a system that automatically positions a camera relative to a given object and keeps that object framed as the object moves.